home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
dev
/
obero
/
oberon_lib.lha
/
oberon-a
/
source1.lha
/
source
/
Amiga
/
FileSysRes.mod
< prev
next >
Wrap
Text File
|
1994-08-08
|
3KB
|
95 lines
(***************************************************************************
$RCSfile: FileSysRes.mod $
Description: Interface to FileSystem.resource
Created by: fjc (Frank Copeland)
$Revision: 3.2 $
$Author: fjc $
$Date: 1994/08/08 00:57:14 $
$VER: filesysres.h 36.4 (3.5.90)
Includes Release 40.15
(C) Copyright 1985-1993 Commodore-Amiga, Inc.
All Rights Reserved
Oberon-A interface Copyright © 1994, Frank Copeland.
This file is part of the Oberon-A Interface.
See Oberon-A.doc for conditions of use and distribution.
***************************************************************************)
MODULE FileSysRes;
(*
** $C- CaseChk $I- IndexChk $L+ LongAdr $N- NilChk
** $P- PortableCode $R- RangeChk $S- StackChk $T- TypeChk
** $V- OvflChk $Z- ZeroVars
*)
IMPORT E := Exec, D := Dos;
(*
** FileSystem.resource description
*)
CONST
name * = "FileSystem.resource";
TYPE
FileSysResourcePtr * = CPOINTER TO FileSysResource;
FileSysResource * = RECORD (E.Node) (* on resource list *)
creator * : E.STRPTR; (* name of creator of this resource *)
fileSysEntries * : E.List; (* list of FileSysEntry structs *)
END; (* FileSysResource *)
FileSysEntryPtr * = CPOINTER TO FileSysEntry;
FileSysEntry * = RECORD (E.Node) (* on fsrFileSysEntries list *)
(* lnName is of creator of this entry *)
dosType * : E.ULONG; (* DosType of this FileSys *)
version * : E.ULONG; (* Version of this FileSys *)
patchFlags * : SET; (* bits set for those of the following that *)
(* need to be substituted into a standard *)
(* device node for this file system: e.g. *)
(* 180H for substitute SegList & GlobalVec *)
fseType * : E.ULONG; (* device node type: zero *)
task * : E.TaskPtr; (* standard dos "task" field *)
lock * : D.FileLockPtr; (* not used for devices: zero *)
handler * : D.BSTR; (* filename to loadseg (if SegList is null) *)
stackSize * : E.ULONG; (* stacksize to use when starting task *)
priority * : LONGINT; (* task priority when starting task *)
startup * : D.BPTR; (* startup msg: FileSysStartupMsg for disks *)
segList * : D.BPTR; (* code to run to start new task *)
globalVec * : D.BPTR; (* BCPL global vector when starting task *)
(* no more entries need exist than those implied by fsePatchFlags *)
END; (* FileSysEntry *)
(**-- Resource Base variable --------------------------------------------*)
VAR
base * : FileSysResourcePtr;
(**-- Resource Base variable --------------------------------------------*)
(** $L- Address globals through A4 *)
(**-----------------------------------*)
PROCEDURE OpenResource * (mustOpen : BOOLEAN);
BEGIN (* OpenResource *)
IF base = NIL THEN
base := E.base.OpenResource (name);
IF mustOpen & (base = NIL) THEN HALT (100) END;
END; (* IF *)
END OpenResource;
END FileSysRes.